/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
define('vs/basic-languages/redis/redis',["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.language = exports.conf = void 0;
    exports.conf = {
        brackets: [
            ['{', '}'],
            ['[', ']'],
            ['(', ')']
        ],
        autoClosingPairs: [
            { open: '{', close: '}' },
            { open: '[', close: ']' },
            { open: '(', close: ')' },
            { open: '"', close: '"' },
            { open: "'", close: "'" }
        ],
        surroundingPairs: [
            { open: '{', close: '}' },
            { open: '[', close: ']' },
            { open: '(', close: ')' },
            { open: '"', close: '"' },
            { open: "'", close: "'" }
        ]
    };
    exports.language = {
        defaultToken: '',
        tokenPostfix: '.redis',
        ignoreCase: true,
        brackets: [
            { open: '[', close: ']', token: 'delimiter.square' },
            { open: '(', close: ')', token: 'delimiter.parenthesis' }
        ],
        keywords: [
            'APPEND',
            'AUTH',
            'BGREWRITEAOF',
            'BGSAVE',
            'BITCOUNT',
            'BITFIELD',
            'BITOP',
            'BITPOS',
            'BLPOP',
            'BRPOP',
            'BRPOPLPUSH',
            'CLIENT',
            'KILL',
            'LIST',
            'GETNAME',
            'PAUSE',
            'REPLY',
            'SETNAME',
            'CLUSTER',
            'ADDSLOTS',
            'COUNT-FAILURE-REPORTS',
            'COUNTKEYSINSLOT',
            'DELSLOTS',
            'FAILOVER',
            'FORGET',
            'GETKEYSINSLOT',
            'INFO',
            'KEYSLOT',
            'MEET',
            'NODES',
            'REPLICATE',
            'RESET',
            'SAVECONFIG',
            'SET-CONFIG-EPOCH',
            'SETSLOT',
            'SLAVES',
            'SLOTS',
            'COMMAND',
            'COUNT',
            'GETKEYS',
            'CONFIG',
            'GET',
            'REWRITE',
            'SET',
            'RESETSTAT',
            'DBSIZE',
            'DEBUG',
            'OBJECT',
            'SEGFAULT',
            'DECR',
            'DECRBY',
            'DEL',
            'DISCARD',
            'DUMP',
            'ECHO',
            'EVAL',
            'EVALSHA',
            'EXEC',
            'EXISTS',
            'EXPIRE',
            'EXPIREAT',
            'FLUSHALL',
            'FLUSHDB',
            'GEOADD',
            'GEOHASH',
            'GEOPOS',
            'GEODIST',
            'GEORADIUS',
            'GEORADIUSBYMEMBER',
            'GETBIT',
            'GETRANGE',
            'GETSET',
            'HDEL',
            'HEXISTS',
            'HGET',
            'HGETALL',
            'HINCRBY',
            'HINCRBYFLOAT',
            'HKEYS',
            'HLEN',
            'HMGET',
            'HMSET',
            'HSET',
            'HSETNX',
            'HSTRLEN',
            'HVALS',
            'INCR',
            'INCRBY',
            'INCRBYFLOAT',
            'KEYS',
            'LASTSAVE',
            'LINDEX',
            'LINSERT',
            'LLEN',
            'LPOP',
            'LPUSH',
            'LPUSHX',
            'LRANGE',
            'LREM',
            'LSET',
            'LTRIM',
            'MGET',
            'MIGRATE',
            'MONITOR',
            'MOVE',
            'MSET',
            'MSETNX',
            'MULTI',
            'PERSIST',
            'PEXPIRE',
            'PEXPIREAT',
            'PFADD',
            'PFCOUNT',
            'PFMERGE',
            'PING',
            'PSETEX',
            'PSUBSCRIBE',
            'PUBSUB',
            'PTTL',
            'PUBLISH',
            'PUNSUBSCRIBE',
            'QUIT',
            'RANDOMKEY',
            'READONLY',
            'READWRITE',
            'RENAME',
            'RENAMENX',
            'RESTORE',
            'ROLE',
            'RPOP',
            'RPOPLPUSH',
            'RPUSH',
            'RPUSHX',
            'SADD',
            'SAVE',
            'SCARD',
            'SCRIPT',
            'FLUSH',
            'LOAD',
            'SDIFF',
            'SDIFFSTORE',
            'SELECT',
            'SETBIT',
            'SETEX',
            'SETNX',
            'SETRANGE',
            'SHUTDOWN',
            'SINTER',
            'SINTERSTORE',
            'SISMEMBER',
            'SLAVEOF',
            'SLOWLOG',
            'SMEMBERS',
            'SMOVE',
            'SORT',
            'SPOP',
            'SRANDMEMBER',
            'SREM',
            'STRLEN',
            'SUBSCRIBE',
            'SUNION',
            'SUNIONSTORE',
            'SWAPDB',
            'SYNC',
            'TIME',
            'TOUCH',
            'TTL',
            'TYPE',
            'UNSUBSCRIBE',
            'UNLINK',
            'UNWATCH',
            'WAIT',
            'WATCH',
            'ZADD',
            'ZCARD',
            'ZCOUNT',
            'ZINCRBY',
            'ZINTERSTORE',
            'ZLEXCOUNT',
            'ZRANGE',
            'ZRANGEBYLEX',
            'ZREVRANGEBYLEX',
            'ZRANGEBYSCORE',
            'ZRANK',
            'ZREM',
            'ZREMRANGEBYLEX',
            'ZREMRANGEBYRANK',
            'ZREMRANGEBYSCORE',
            'ZREVRANGE',
            'ZREVRANGEBYSCORE',
            'ZREVRANK',
            'ZSCORE',
            'ZUNIONSTORE',
            'SCAN',
            'SSCAN',
            'HSCAN',
            'ZSCAN'
        ],
        operators: [
        // NOT SUPPORTED
        ],
        builtinFunctions: [
        // NOT SUPPORTED
        ],
        builtinVariables: [
        // NOT SUPPORTED
        ],
        pseudoColumns: [
        // NOT SUPPORTED
        ],
        tokenizer: {
            root: [
                { include: '@whitespace' },
                { include: '@pseudoColumns' },
                { include: '@numbers' },
                { include: '@strings' },
                { include: '@scopes' },
                [/[;,.]/, 'delimiter'],
                [/[()]/, '@brackets'],
                [
                    /[\w@#$]+/,
                    {
                        cases: {
                            '@keywords': 'keyword',
                            '@operators': 'operator',
                            '@builtinVariables': 'predefined',
                            '@builtinFunctions': 'predefined',
                            '@default': 'identifier'
                        }
                    }
                ],
                [/[<>=!%&+\-*/|~^]/, 'operator']
            ],
            whitespace: [[/\s+/, 'white']],
            pseudoColumns: [
                [
                    /[$][A-Za-z_][\w@#$]*/,
                    {
                        cases: {
                            '@pseudoColumns': 'predefined',
                            '@default': 'identifier'
                        }
                    }
                ]
            ],
            numbers: [
                [/0[xX][0-9a-fA-F]*/, 'number'],
                [/[$][+-]*\d*(\.\d*)?/, 'number'],
                [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
            ],
            strings: [
                [/'/, { token: 'string', next: '@string' }],
                [/"/, { token: 'string.double', next: '@stringDouble' }]
            ],
            string: [
                [/[^']+/, 'string'],
                [/''/, 'string'],
                [/'/, { token: 'string', next: '@pop' }]
            ],
            stringDouble: [
                [/[^"]+/, 'string.double'],
                [/""/, 'string.double'],
                [/"/, { token: 'string.double', next: '@pop' }]
            ],
            scopes: [
            // NOT SUPPORTED
            ]
        }
    };
});

